import axios from "axios";
import {jwtName, messagejudge, messagetip, removeJwt} from "@/util/util";
//import {ElMessage} from "element-plus";

axios.defaults.baseURL="http://localhost:8089";
// 添加请求拦截器
axios.interceptors.request.use( (config) =>{
    // 在发送请求之前做些什么
    let jwt = window.sessionStorage.getItem(jwtName());
    if (!jwt){
        jwt=window.localStorage.getItem(jwtName());
        if (jwt){
            config.headers['rememberMe']=true;
        }
    }
    //两处都拿了 jwt  ,放入请求头中
    if (jwt){
        config.headers['Authorization']=jwt;
    }
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
axios.interceptors.response.use( (response)=> {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
      if (response.data.code>900){//都是jwt验证未通过,登录失效

          //提示一下,jwt验证未通过,提示一下
          messagejudge(response.data.msg+",是否重新去登录?") .then(() => {//确定执行这里
              //后台对jwt验证未通过,把jwt删除一下
              removeJwt();
             //跳转
              window.location.href="/";
             })
              .catch(() => { //取消执行这里
                messagetip("用户取消登录","warning")
              })
      }
    return response;
}, function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error);
});

export  function doGet(url,params){
    return axios({
        url:url,
        method:"get",
        params:params
    })

}
export  function doPost(url,data){
   return  axios({
        url:url,
        method:"post",
        data:data

    })
}
export  function doPut(url,data){
    return  axios({
        url:url,
        method:"put",
        data:data

    })
}
//封装delete请求
export  function doDelete(url,params){
    return axios({
        url:url,
        method:"delete",
        params:params
    })
}